package com.boss.salary.service;

import com.boss.common.entity.PageDTO;
import com.boss.framework.dto.PaginationDTO;
import com.boss.salary.entity.SalaryMeritPay;
import com.boss.sys.ca.user.dto.UserDTO;

import java.util.List;
import java.util.Map;

public interface ISalaryMeritPayService {
    /**
     * 新增
     * @param salaryMeritPay
     */
    void insertSalaryMeritPay(SalaryMeritPay salaryMeritPay);

    /**
     * 根据id删除
     * @param id
     */
    void deleteSalaryMeritPay(String id,String mofDivCode);

    /**
     * 修改
     * @param salaryMeritPay
     */
    void updateSalaryMeritPay(SalaryMeritPay salaryMeritPay);

    /**
     *  查询
     *  可以通过
     *  childrenId 父id 查询
     *  state 状 态  0 全部 1 设置 2 未设置 查询
     * @param paginationDTO
     */
    PageDTO<Map<String,Object>> querySalaryMeritPayPage(PaginationDTO paginationDTO,String mofDivCode,List<String> childrenId,String state);

    /**
     * 新增或者修改
     * @param salaryMeritPayList
     */
    void insertUpdateSalaryMeritPay(List<SalaryMeritPay> salaryMeritPayList,UserDTO userDTO);

    /**
     * 根据agencyid 查这个单位下的所有人数以及状态
     * @param userDTO
     * @param agencyId
     * @return
     */
    List<SalaryMeritPay> queryAgencyIdList(String agencyId, UserDTO userDTO);

    /**
     * 根据区划 查询工资类型
     * @param
     * @param province
     * @return
     */
    List<SalaryMeritPay> agencyType(String province);

    /**
     * //根据机构id查询当前单位
     * @param userDTO
     * @param agencyId
     * @return
     */
    List<SalaryMeritPay> currentUnitList(String agencyId, UserDTO userDTO);

    /**
     * 根据单位id和 工资类型 code 查找单位人员编制数 限制数量
     * @param agencyId
     * @return
     */
    Integer queryCurrentNumber(String agencyId, String payCode);


}
